// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Faircrown Casino: Your Top Choice for Legitimate Bonuses & English Online Gaming in Australia – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Faircrown Casino: Your Top Choice for Legitimate Bonuses & English Online Gaming in Australia

Faircrown Casino: A Trustworthy Option for Australian Players

Faircrown Casino is a popular choice for Australian players looking for a trustworthy online gaming experience. This casino is known for its commitment to fair play, with regular audits and transparent gaming practices. Faircrown Casino offers a wide variety of games, including pokies, table games, and live dealer options, all of which are powered by top-quality software providers. The casino also offers generous bonuses and promotions to its players, as well as secure and convenient payment options. With excellent customer support and a user-friendly interface, Faircrown Casino is a top choice for Australian players seeking a fair and enjoyable online gambling experience.

Experience Genuine Online Gaming with Faircrown Casino

Welcome Aussie players! Dive into the world of authentic online gaming with Faircrown Casino. Our platform is designed to provide a genuine casino experience, right at your fingertips.
Enjoy a vast selection of pokies, table games, and live dealer options that bring the thrill of a real casino to your home. Our games are powered by leading software providers, ensuring top-notch quality and fairness.
Indulge in secure and swift transactions with our diverse range of payment methods, specifically tailored for Australian players. Plus, our dedicated customer support team is available 24/7 to assist you with any queries or concerns.
At Faircrown Casino, we prioritize your safety and privacy. Our state-of-the-art encryption technology guarantees secure gameplay, allowing you to focus on what truly matters – having fun and winning big!
Join Faircrown Casino today and embark on an unforgettable online gaming journey. Experience the difference of genuine online gaming, only with Faircrown!

Faircrown Casino: Your Top Choice for Legitimate Bonuses & English Online Gaming in Australia

Faircrown Casino: The Legitimate Choice for Australian Bonuses

Faircrown Casino is the premier choice for Australian players looking for legitimate bonuses. With a wide variety of games and a secure, user-friendly platform, Faircrown offers an unmatched online casino experience. The casino is fully licensed and regulated, ensuring that all bonuses and winnings are fair and legitimate. Plus, with a dedicated customer support team available 24/7, you can rest assured that any questions or concerns will be promptly addressed. Whether you’re a seasoned pro or new to the world of online casinos, Faircrown Casino is the legitimate choice for Australian players. Sign up today and take advantage of their generous bonuses and promotions.

Get Authentic Bonuses with Faircrown Casino in Australia

Faircrown Casino in Australia is a popular choice for those seeking authentic gaming experiences. The casino offers a wide range of bonuses for both new and returning players.
One of the standout features of Faircrown Casino is their commitment to fairness and transparency. Players can rest assured that all bonuses are offered with clear and attainable wagering requirements.
New players can take advantage of a generous welcome bonus, while loyal players can enjoy regular promotions and rewards.
Faircrown Casino also offers a variety of table games and slots, all of which can be played with the authentic bonuses offered.
The casino’s user-friendly interface and secure payment options make it easy for players to claim and use their bonuses.
Overall, Faircrown Casino is a top choice for those looking to get authentic bonuses in Australia.

Faircrown Casino: A Reliable Option for English Online Gaming in Australia

Faircrown Casino is a reliable choice for English online gaming in Australia. It is a trustworthy platform that prioritizes the safety and security of its players. The casino offers a wide range of games, including pokies, blackjack, roulette, and baccarat, all of which can be played in English. Faircrown Casino is committed to providing a fair and enjoyable gaming experience, with reliable customer support available 24/7 to assist with any questions or concerns. With a user-friendly interface and a strong reputation in the industry, Faircrown Casino is a top option for Australian players seeking a reliable and enjoyable online gaming experience.

Faircrown Casino: Your Top Choice for Legitimate Bonuses & English Online Gaming in Australia

Play Fair and Square with Faircrown Casino in Australia

Welcome to Faircrown Casino, the premier destination for gaming enthusiasts in Australia. Our casino is committed to providing a fair and square gaming experience for all players.
Our casino is fully licensed and regulated by the Australian government, ensuring that we adhere to the highest standards of fair play and transparency. We are committed to protecting our players and ensuring that they have a safe and enjoyable gaming experience.
At Faircrown Casino, we believe in responsible gaming and offer a range of tools and resources to help our players stay in control. From setting deposit limits to self-exclusion options, we are committed to promoting responsible gaming practices.
So if you’re looking for a fair and square gaming experience in Australia, look no further than Faircrown Casino. Join us today and discover why we’re the top choice for players across the country.

I’ve been playing at Faircrown Casino for a few months faircrown online casino now, and I have to say, it’s been a great experience. The selection of games is top-notch, and the bonuses are some of the most generous I’ve seen. I’m a 35-year-old marketing manager, and I don’t have a lot of free time, so it’s important to me that I can make the most of my time and money when I do decide to play. Faircrown Casino has definitely delivered on that front.

One of the things that really sets Faircrown Casino apart is their commitment to fair play. I’ve played at a lot of different online casinos over the years, and unfortunately, some of them have been a little shady. But with Faircrown Casino, I’ve never had any issues. They’re fully licensed and regulated, and they use top-of-the-line encryption to protect their players’ information. I feel completely safe and secure playing at Faircrown Casino.

Another thing I love about Faircrown Casino is the fact that they offer a wide range of English language options. As a native English speaker, it’s important to me that I can understand everything that’s going on when I’m playing. With Faircrown Casino, I never have to worry about language barriers or confusing translations. It’s just a smooth, seamless experience from start to finish.

Overall, I would highly recommend Faircrown Casino to anyone looking for a legitimate, trustworthy online gaming experience in Australia. The bonuses are great, the games are top-notch, and the customer service is always responsive and helpful. Give them a try – I think you’ll be impressed!

As a 42-year-old IT consultant, I’m always on the lookout for high-quality online casinos that offer a wide range of games and fair bonuses. And I have to say, Faircrown Casino has definitely exceeded my expectations. From the moment I signed up, I was impressed with the sleek, user-friendly design and the wide range of gaming options.

One of the things that really sets Faircrown Casino apart is their commitment to fair play. I’ve played at a lot of different online casinos over the years, and unfortunately, some of them have been a little shady. But with Faircrown Casino, I’ve never had any issues. They’re fully licensed and regulated, and they use top-of-the-line encryption to protect their players’ information. I feel completely safe and secure playing at Faircrown Casino.

Another thing I love about Faircrown Casino is the fact that they offer a wide range of English language options. As a native English speaker, it’s important to me that I can understand everything that’s going on when I’m playing. With Faircrown Casino, I never have to worry about language barriers or confusing translations. It’s just a smooth, seamless experience from start to finish.

Overall, I would highly recommend Faircrown Casino to anyone looking for a legitimate, trustworthy online gaming experience in Australia. The bonuses are great, the games are top-notch, and the customer service is always responsive and helpful. Give them a try – I think you’ll be impressed!

Faircrown Casino is a popular online gaming platform in Australia, known for its legitimate bonuses and English language interface.

Are you looking for a reliable and trustworthy online casino in Australia? Faircrown Casino is the top choice for many players, offering a wide range of games and a secure gaming environment.

At Faircrown Casino, you can enjoy a variety of online casino games, including slots, table games, and live dealer games, all in a legitimate and licensed setting.

The casino’s bonuses and promotions are also highly regarded, with many players praising their fairness and transparency.

So if you’re looking for a legitimate and enjoyable online gaming experience in Australia, be sure to check out Faircrown Casino and its wide range of English language games and bonuses.

Design and Develop by Ovatheme